The present disclosure relates generally to multi-tenant environments, and more particularly, to techniques (e.g., systems, methods, computer program products storing code or instructions executable by one or more processors) for segregating and accessing global and tenant metadata in a multi-tenant environment.
The software industry is adopting multi-tenancy to achieve more economical usage of hardware through higher density and reduced maintenance cost. Multi-tenancy is a mode of operation of software where multiple independent instances of one or multiple applications operate in a shared environment. In a multi-tenant architecture, a single instance of software runs on a server and serves multiple tenants. A tenant is a user or a group of users who share a common access with specific privileges to the software instance. For example, a tenant can be a company or a business.
A primary constraint of a multi-tenant architecture is that each tenant's private data and metadata has to be stored in a tenant-isolated database or file system storage. Nonetheless, it is often the case that multiple tenants use common (i.e., shared or global) metadata such as application view and business component definitions because the same application is accessed by multiple tenants. The challenge is how to persist and access common metadata for all tenants in an optimal and secure method. The common industry solution is to duplicate the common metadata into each tenant's storage during tenant provisioning and application deployment. The common metadata is thus duplicated for each tenant.
However, conventional multi-tenant architecture does not have support for the sharing of the common metadata across tenants while maintaining the segregation of tenant private metadata. This has several problems including: (i) any updates to shared global metadata will be lost when the application is upgraded because it will be overwritten during deployment of the next version of the application, (ii) lifecycle and security are co-mingled, which makes patching and upgrading difficult, (iii) duplicating global metadata for each tenant results in increased storage cost, and (iv) shared objects cannot be efficiently cached.
Therefore, a method for efficiently segregating, storing, and accessing global and tenant metadata in a multi-tenant environment is desired.